/**
 * 0225
 *  
 * @Author : roryrywang
 * @DateTime : 2024/8/14 21:07
 */

#include <iostream>
#include <vector>
#include "queue"

using namespace std;

class MyStack {
private:
    queue<int> q1;
    queue<int> q2;
    int flag = 1;
public:
    MyStack() {

    }

    void push(int x) {
        if (flag == 1) {
            q1.push(x);
        } else {
            q2.push(x);
        }
    }

    int pop() {
        if (empty()) return 0;
        int res;
        if (flag == 1) {
            res = q1.back();
            for (int i = q1.size() - 2; i >= 0; --i) {
                q2.push(q1.front());
                q1.pop();
            }
            q1.pop();
            flag = 2;
        } else {
            res = q2.back();
            for (int i = q2.size() - 2; i >= 0; --i) {
                q1.push(q2.front());
                q2.pop();
            }
            q2.pop();
            flag = 1;
        }
        return res;
    }

    int top() {
        if (flag == 1) {
            return q1.back();
        } else {
            return q2.back();
        }
    }

    bool empty() {
        return q1.empty() && q2.empty();
    }
};

int main() {

    return 0;
}